package org.deng.learn.concurrent.basic;

/**
 * Created By DengLibin
 * Date: 19-4-5
 * Time: 下午4:51
 * Desc: Runnable只有一个抽象的run()方法，此方法是在运行时由JVM调用，每一个运行期的Runnable实现类实例(包括Thread的子类，
 * 因为Thread亦是实现了Runnable接口)都对应于操作系统中的一个线程，所以说Java中的线程只是操作系统线程的一个映射，
 * Java中线程的运行效率也不可能高于底层语言线程，因为Java中线程的创建和调用需要经过JVM，JVM再向下调用(JNI的方式与特定平台进行通信)
 *
 * Runnable 接口可以被任何想要被一个线程运行的接口继承实现；继承 Runnable 接口的类必须有一个 run() 方法；
 * Runnable 接口被设计的目的是为那些当其处于活跃期时期望运行代码的对象提供一个公共的协议；处于活跃期简单的说就是一个线程已经启动但还没有结束
 * 继承 Runnable 接口实现线程，不需继承 Thread；而将类本身作为 Thread 中的目标 target
 */
public class RunnableDemo {

    public static void main(String[] args){

        Thread thread = new Thread(new MyRunnableImp());
        thread.start();
    }

    private static  class MyRunnableImp implements Runnable{

        @Override
        public void run() {
            System.out.println("run方法执行了");
        }
    }
}
